'''
Created on 5/01/2013

@author: Jorge
'''
from FeatureSelector import FeatureSelector

class UpperSVMFeatures(FeatureSelector):
    '''
    classdocs
    '''
    def get_index_features(self):
        return [935, 489, 885, 67, 2930, 1082, 237, 133, 299, 524, 175, 277, 282, 221, 410, 1019, 1502, 285, 1589, 166, 608, 376, 39, 127, 951, 436, 1789, 8, 395, 480, 1006, 381, 333, 717, 4, 416, 521, 279, 80, 2, 755, 568, 1405, 1695, 1790, 311, 179, 363, 100, 329, 631, 656, 262, 624, 119, 1343, 271, 954, 714, 384, 72, 2262, 1631, 245, 276, 296, 291, 609, 454, 1073, 1055, 1947, 2349, 1764, 658, 1671, 1684, 1698, 1028, 301, 1686, 1786, 1670, 2749, 1632, 29, 1347, 1650, 317, 614, 2071, 802, 1511, 220, 41, 1037, 1252, 1485, 1696, 801, 1306, 502, 2848, 1404, 1307, 78, 2261, 552, 1911, 397, 1387, 53, 1265, 1788, 1754, 501, 43, 500, 1034, 292, 46, 635, 148, 1564, 295, 171, 744, 54, 1084, 1, 32, 543, 637, 473, 740, 571, 1023, 952, 259, 323, 398, 151, 721, 542, 1440, 2734, 791, 1953, 1705, 2062, 2112, 3544, 3778, 1025, 2375, 1406, 2641, 2997, 1957, 2294, 1526, 565, 1956, 1867, 2237, 2728, 3138, 3924, 2794, 1423, 2025, 2230, 3256, 1617, 1707, 2937, 1637, 1771, 1475, 2072, 1045, 1524, 1685, 1687, 1691, 1697, 1700, 1701, 1703, 794, 1495, 1787, 1791, 2759, 1161, 2037, 273, 2238, 1455, 2875, 2203, 2673, 1638, 2534, 1655, 76, 396, 31, 619, 1676, 824, 1041, 738, 640, 304, 871, 1692, 56, 680, 2123, 1468, 780, 1782, 1669, 26, 1159, 1454, 2163, 2210, 1162, 2670, 2789, 3213, 2729, 1046, 1783, 1303, 3392, 710, 1785, 1268, 913, 40, 731, 1536, 2052, 1848, 149, 440, 2650, 2133, 883, 3683, 1014, 1246, 2433, 1654, 2893, 1829, 1590, 3779, 2129, 1373, 1986, 1083, 987, 549, 11, 630, 998, 407, 704, 1432, 623, 293, 672, 479, 1557, 505, 107, 1513, 605, 1452, 632, 1090, 209, 817, 600, 399, 705, 1069, 782, 1223, 703, 309, 1716, 36, 529, 228, 386, 457, 2053, 650, 383, 696, 628, 3384, 519, 257, 3182, 1146, 96, 930, 167, 627, 404, 131, 278, 2391, 189, 800, 319, 66, 1137, 229, 414, 401, 854, 526, 19, 2475, 477, 1285, 2050, 1446, 589, 760, 1535, 444, 567, 878, 2026, 1157, 1294, 697, 1173, 771, 1352, 1235, 1422, 59, 668, 94, 367, 261, 775, 1964, 255, 925, 3281, 2668, 2671, 2672, 3979, 3980, 3981, 3982, 3983, 3984, 1431, 1635, 1641, 1642, 1643, 1644, 1645, 1646, 2402, 2403, 2404, 2405, 2406, 2407, 2409, 2410, 2647, 2648, 2649, 3323, 3324, 3325, 3985, 1335, 1337, 1338, 1339, 1709, 1712, 1713, 1714, 2552, 2553, 2554, 2698, 2699, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 3130, 3131, 3132, 3133, 263, 267, 268, 269, 270, 281, 312, 2372, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2750, 2751, 2752, 2753, 2813, 3060, 3617, 3633, 3642, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3677, 3678, 3679, 3680, 3681, 3682, 3684, 3685, 3686, 3765, 1163, 1164, 2382, 2400, 2594, 2716, 2727, 2754, 2755, 2756, 2758, 2760, 2795, 2888, 3038, 4567, 4568, 4569, 4570, 1066, 2389, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3963, 3964, 3965, 3966, 3967, 4532, 788, 1874, 1958, 1959, 1960, 1961, 2398, 2713, 2764, 3147, 3233, 3459, 3460, 3461, 3462, 3556, 3620, 3621, 3832, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 118, 945, 1033, 1427, 1486, 1491, 1492, 1494, 1497, 1498, 1500, 1501, 1503, 1504, 1505, 1507, 1508, 1509, 1512, 1515, 1516, 1521, 1523, 1525, 1527, 1528, 1530, 1673, 1674, 1677, 1798, 2574, 2640, 3857, 3858, 3859, 3860, 3861, 1900, 1901, 1902, 3431, 3432, 3433, 3504, 3505, 3506, 3507, 3508, 3509, 995, 1002, 1086, 1629, 2074, 2472, 2473, 2474, 3078, 3166, 3167, 3168, 3169, 3170, 3171, 3237, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3968, 3969, 3970, 3971, 3972, 3973, 4027, 4028, 1264, 1880, 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2022, 2024, 2027, 2029, 2030, 2031, 2033, 2034, 2035, 2891, 2892, 3885, 3886, 4562, 340, 661, 2128, 2130, 2132, 2153, 2557, 2558, 2559, 2884, 2885, 2886, 2887, 1768, 1780, 1781, 2060, 2492, 2525, 2526, 2577, 2651, 3414, 3415, 3416, 3417, 3852, 3853, 3854, 1753, 1756, 1761, 1762, 1765, 1766, 3215, 3216, 3217, 3534, 3777, 3780, 3977, 3978, 1068, 1240, 1622, 2068, 2241, 2461, 2462, 2464, 2465, 3096, 3098, 3099, 3345, 3346, 3876, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 953, 1255, 2392, 2393, 2544, 2545, 2842, 2843, 2844, 2845, 2846, 2847, 2849, 2850, 2851, 2852, 2854, 3239, 3240, 3698, 3699, 1333, 1922, 2481, 2482, 2768, 2803, 2804, 2806, 2807, 2809, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2959, 2960, 3998, 453, 1156, 1158, 1936, 1937, 1938, 1939, 1940, 1941, 1943, 1944, 1946, 1948, 1949, 1950, 1951, 1954, 1955, 2724, 2725, 2726, 3011, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3118, 3119, 3120, 3124, 3840, 3841, 3842, 3843, 3844, 126, 3101, 3799]
        
        
class MinoritySVMFeatures(FeatureSelector):
    '''
    classdocs
    '''
    def get_index_features(self):
         return [935, 138, 801, 489, 785, 93, 781, 1082, 276, 1405, 1249, 705, 223, 543, 744, 282, 1485, 1307, 285,
                800, 100, 143, 376, 1, 1410, 372, 1021, 1777, 1022, 1790, 1788, 210, 1502, 607, 690, 1428, 823, 166,
                28, 485, 1159, 1704, 30, 3, 29, 148, 89, 796, 814, 815, 816, 1475, 24, 116, 429, 430, 431, 1125, 1847,
                2036, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 130, 1671, 1670, 4, 656, 295, 717, 1172, 245, 149, 203,
                1656, 623, 345, 1789, 600, 502, 1227, 2848, 1514, 45, 2262, 299, 221, 1432, 601, 1047, 509, 1892, 160,
                1004, 1986, 2070, 2072, 195, 1247, 2728, 1255, 1455, 900, 3544, 3758, 3778, 575, 1495, 1489, 1520, 2112,
                2669, 1055]

         
class MajoritySVMFeatures(FeatureSelector):
    '''
    classdocs
    '''
    def get_index_features(self):
        return [317, 107, 524, 760, 66, 1557, 3392, 1656, 4, 288, 2, 3182, 1589, 361, 211, 114, 127, 608, 175, 913, 643,
                98, 384, 2174, 31, 135, 521, 374, 299, 46, 315, 119, 1336, 54, 32, 3396, 1019, 16, 45, 257, 1754, 35, 3156,
                2123, 132, 162, 131, 304, 121, 1633, 2278, 53, 505, 52, 1037, 523, 4605, 580, 3384, 123, 282, 30, 1653, 134,
                10, 691, 1169, 1452, 680, 74, 272, 18, 2906, 285, 3268, 892, 193, 1892, 106, 345, 60, 402, 410, 26, 467, 69,
                203, 289, 1015, 1717, 295, 1518, 386, 1964, 3424, 3418, 1120, 367, 360, 434, 2876, 228, 781, 484, 293, 111,
                412, 416, 297, 227, 87, 1352, 851, 261, 690, 1488, 461, 1021, 473, 549, 1023, 721, 376, 872, 708, 1415, 998,
                19, 529, 578, 2245, 2780, 1041, 1357, 758, 3148, 2583, 3261, 3290, 1450, 358, 1012, 1193, 454, 1858, 1439,
                1030, 701, 635, 300, 2127, 551, 56, 544, 39, 276, 198, 980, 1040, 605, 137, 36, 1, 2176, 1918, 2669, 1715,
                1912, 1458, 9, 68, 464, 465, 283, 389, 3079, 3080, 753, 545, 323, 319, 3285, 290, 640, 97, 138, 221, 732, 510,
                1022, 245, 94, 202, 702, 181, 286, 433, 647, 609, 354, 530, 1000, 889, 407, 40, 27, 309, 997, 1235, 38, 602,
                356, 919, 3402, 284, 209, 3, 364, 854, 806, 1001, 822, 1004, 3199, 2373, 705, 500, 400, 1251, 1017, 156, 129,
                1514, 86, 234, 254, 501, 255, 1179, 1269, 1173, 1101, 1737, 1759, 1204, 47, 581, 1647, 2131, 3177, 3262, 1626,
                3185, 3181, 1071, 3104, 3175, 3193, 3191, 3245, 663, 3144, 3286, 3288, 3289, 3338, 3310, 2335, 1343, 955, 1553,
                205, 632, 327, 164, 349, 463, 401, 470, 1371, 2103, 246, 904, 294, 1862, 259, 1291, 307, 1618, 200, 1053, 451,
                2418, 1578, 1848, 1788, 2450, 1404, 1572, 1978, 2321, 3422, 1287, 3391, 976, 1574, 3162, 3409, 6, 7, 1569, 3393,
                3394, 3395, 940, 979, 1298, 1583, 2415, 2448, 2476, 1804, 3767, 3768, 3769, 3113, 3423, 2297, 1652, 2290, 2167,
                2864, 1262, 682, 3700, 1429, 2962, 2964, 373, 2820, 1432, 28, 1304, 3174, 3201, 3208, 619, 8, 804, 248, 393,
                1311, 571, 648, 1284, 1856, 144, 210, 1005, 1522, 59, 368, 420, 150, 492, 1006, 444, 606, 93, 177, 155, 610,
                143, 15, 490, 306, 2483, 749, 2280, 2365, 1604, 3665, 1314, 1137, 1808, 378, 937, 5, 204, 90, 1571, 597, 382,
                11, 381, 2217, 1558, 324, 1877, 3302, 1489, 526, 409, 683, 759, 92, 628, 480, 249, 930, 964, 1035, 140, 2685,
                489, 1180, 427, 102, 2266, 48, 887, 2830, 320, 2346, 1591, 582, 846, 1567, 482, 972, 607, 398, 80, 75, 1031,
                292, 12, 485, 1146, 220, 179, 799, 587, 1036, 2390, 1010, 391, 2240, 516, 1897, 1693, 536, 1009, 189, 226,
                414, 1575, 2026, 3198, 250, 1513, 237, 73, 630, 2306, 558, 34, 403, 152, 316, 303, 886, 460, 809, 810, 811,
                812, 1345, 1367, 1368, 1369, 1370, 1372, 1373, 1374, 2586, 2587, 2720, 2721, 2722, 2723, 453, 455, 2588, 2589,
                241, 243, 244, 247, 256, 258, 1011, 880, 657, 787, 1840, 2113, 2114, 2115, 2117, 2118, 2119, 1476, 1744, 2925,
                3513, 3514, 3515, 3516, 3517, 824, 927, 1533, 1534, 1537, 126, 542, 874, 882, 379, 380, 385, 387, 390, 392,
                394, 468, 471, 475, 476, 1253, 1254, 2603, 2604, 2605, 2606, 2607, 2608, 803, 805, 807, 808, 671, 674, 675,
                773, 1282, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 778, 819, 820, 1243, 3012, 3081,
                3082, 3083, 3084, 3085, 1520, 1850, 1987, 1998, 2097, 2099, 2100, 2102, 2104, 2105, 2106, 2107, 2298, 2299,
                2300, 2350, 3066, 3067, 3068, 3069, 3070, 3071, 477, 572, 576, 585, 586, 590, 613, 616, 621, 624, 633, 634,
                638, 639, 720, 2585, 1749, 3086, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 2121, 2122, 2124, 2125, 2126, 2096,
                573, 593, 618, 725, 650, 843, 2652, 1419, 486, 2291, 696, 727, 2078, 1967, 922, 1568, 116, 894, 1222, 1172,
                72, 577]